home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacHack 1996
/
MacHack 1996.toast
/
Hacks
/
Hacks ’87
/
Source ƒ.sit
/
Source ƒ
/
C ƒ
/
TCOMMPRO.TXT
/
IBMPCIO.H
< prev
next >
Wrap
Text File
|
1987-01-14
|
5KB
|
133 lines
/**
*
* This header file defines the information used for IBM PC I/O
* and Lattice C.
* Copyright (c) 1984, 1985 Larry Jordan Associates
*
**/
/**
;----------------------------------------------------------|
; |
; EQUATES FOR COMM PORT AND MODEM CONTROL |
; |
;----------------------------------------------------------|
**/
/* ------------ HAYES Smartmodem controls ----------------- */
#define MOATN "AT"
#define MORESET "ATZ"
#define MOANSWER "ATA"
#define MONOANS "ATS0=0"
#define MOAUTOAN "ATS0=1"
#define MOSPKOFF "ATM0"
#define MOECHOFF "ATE0"
#define OFFHOOK "ATH1"
#define MORESPAC 20000 /* modem response delay for buffer clear */
#define MOCMDPAC 10000 /* command spacing for modem */
#define WAITCD 50000 /* riduclous wait for carrier */
#define WAITFORC 30 /* wait 30 seconds for carrier after connect */
/* ------------ Greenleaf assignments ---------------------- */
#define PORT1 0
#define PORT2 1
#define NONE 0
#define EVEN 2
#define ODD 1
/**
;------ BIOS RS-232 IO Parameter Masks ------------------------------
**/
#define _300E71 0x05A /* PARMS: 300, EVEN, 7, 1 */
#define _300N81 0x043 /* PARMS: 300, NONE, 8, 1 */
#define _1200E71 0x09A /* PARMS: 1200, EVEN, 7, 1 */
#define _1200N81 0x083 /* PARMS: 1200, NONE, 8, 1 */
#define _2400E71 0x0BA /* PARMS: 2400, EVEN, 7, 1 */
#define _2400N81 0x0A3 /* PARMS: 2400, NONE, 8, 1 */
#define _9600E71 0x0FA /* PARMS: 9600, EVEN, 7, 1 (WOW!)*/
#define _9600N81 0x0E3 /* PARMS: 9600, NONE, 8, 1 */
#define P300E71 "300,E,7,1" /* PARMS: 300, EVEN, 7, 1 */
#define P300N81 "300,N,8,1" /* PARMS: 300, NONE, 8, 1 */
#define P600E71 "600,E,7,1" /* PARMS: 300, EVEN, 7, 1 */
#define P600N81 "600,N,8,1" /* PARMS: 300, EVEN, 7, 1 */
#define P1200E71 "1200,E,7,1" /* PARMS: 1200, EVEN, 7, 1 */
#define P1200N81 "1200,N,8,1" /* PARMS: 1200, NONE, 8, 1 */
#define P2400E71 "2400,E,7,1" /* PARMS: 2400, EVEN, 7, 1 */
#define P2400N81 "2400,N,8,1" /* PARMS: 2400, NONE, 8, 1 */
#define P4800E71 "4800,E,7,1" /* PARMS: 2400, EVEN, 7, 1 */
#define P4800N81 "4800,N,8,1" /* PARMS: 2400, NONE, 8, 1 */
#define P9600E71 "9600,E,7,1" /* PARMS: 9600, EVEN, 7, 1 (WOW!)*/
#define P9600N81 "9600,N,8,1" /* PARMS: 9600, NONE, 8, 1 */
/**
;----- TECHNICAL REF 8250 PORT ADDRESS (PAGE 2-125) -----------------
**/
/* COM1: port addresses */
#define COM1BASE 0x03F8 /* UART 1 BASE ADDRESS */
#define LSR1 0x03FD /* UART LINE STATUS REGISTER ADDRESS */
#define LCR1 0x03FB /* UART LINE CONTROL REGISTER */
#define MSR1 0x03FE /* UART MODEM STATUS (DTR,RTS) */
#define MCR1 0x03FC /* UART MODEM CONTROL REGISTER (DTR,RTS) */
#define IER1 0x03F9 /* UART INTERRUPT ENABLE REGISTER */
#define IIR1 0x03FA /* UART INTERRUPT IDENTIFY REG */
#define PORTCOM1 "COM1:"
#define COM1 "COM1"
/* COM2: port addresses */
#define COM2BASE 0x02F8 /* UART 2 BASE ADDRESS */
#define LSR2 0x02FD /* UART LINE STATUS REGISTER ADDRESS */
#define LCR2 0x02FB /* UART LINE CONTROL REGISTER */
#define MSR2 0x02FE /* UART MODEM STATUS (DTR,RTS) */
#define MCR2 0x02FC /* UART MODEM CONTROL REGISTER (DTR,RTS) */
#define IER2 0x02F9 /* UART INTERRUPT ENABLE REGISTER */
#define IIR2 0x02FA /* UART INTERRUPT IDENTIFY REG */
#define PORTCOM2 "COM2:"
#define COM2 "COM2"
/**
;------ MODEM CONTROL REGISTER MASKS (TECH REF 2-142) ----------------
**/
#define DTR_ON 0x1 /* TURN UART DATA TERMINAL SIGNAL ON */
#define DTR_OFF 0x0 /* TURN UART DATA TERMINAL READY OFF */
#define STS_ON 0x2 /* turn on UART Request to Send signal */
#define IGNORECD 0x8 /* Turn on MCR Out 2 signal to ignore Carrier Detect */
/* exist to allow talk to modem when no carrier */
#define WATCHCD 0x3 /* Mask for MCR Out 2 signal to watch Carrier Detect */
#define DTR_CD 0x9 /* Mask to check for DTR and CD before Out 2 turn on */
/**
;------ LINE STATUS REGISTER MASKS (TECH REF PAGE 2-137) ----------------
**/
/* LSR BITS SET TO 1 WHEN TRUE */
#define DATA_READY 0x1 /* BIT 0 IS SET WHEN A CHARACTER HAS */
/* BEEN RECEIVED INTO RECV BUFFER REG */
#define OVERRUN 0x2 /* BIT 1 IS SET ON OVERRUN ERROR */
#define PARITY 0x4 /* BIT 2 IS SET ON PARITY ERROR */
#define FRAME 0x8 /* BIT 3 SET ON FRAMING ERROR */
#define BREAK 0x10 /* BIT 4 SET ON BREAK SIGNAL INTERRUPT */
#define TS_EMPTY 0x40 /* TRANS BUFFER EMPTY STATUS FLAG */
#define TX_EMPTY 0x20 /* TRANSMIT REG EMPTY -- ANOTHER CHAR CAN */
/* NOW BE SENT */